package com.xebest.web.form;

import com.xebest.web.form.base.BaseForm;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 采购商品详情
 *
 * @author 李书峰
 */

public class XeVenPurchProductForm extends BaseForm implements Serializable {

    private static final long serialVersionUID = -2329567077267082273L;

    /**
     * 采购单号
     */
    private String purchOrder;

    /**
     * 商品spu
     */
    @NotNull(message = "商品spu不能为空")
    @NotEmpty(message = "商品spu不能为空")
    @Length(min = 1, max = 20, message = "商品spu长度不能大于20个字符")
    private String proSpu;

    /**
     * 商品sku
     */
    @NotNull(message = "商品sku不能为空")
    @NotEmpty(message = "商品sku不能为空")
    @Length(min = 1, max = 20, message = "商品sku长度不能大于20个字符")
    private String proSku;

    /**
     * 商品名称
     */
    @NotNull(message = "商品名称不能为空")
    @NotEmpty(message = "商品名称不能为空")
    @Length(min = 1, max = 20, message = "商品名称长度不能大于20个字符")
    private String proName;

    /**
     * 商品货号
     */
    @NotNull(message = "商品货号不能为空")
    @NotEmpty(message = "商品货号不能为空")
    @Length(min = 1, max = 20, message = "商品货号长度不能大于20个字符")
    private String proNo;

    /**
     * 进货价格
     */
    @NotNull(message = "进货价格不能为空")
    @Length(min = 1, max = 8, message = "进货价格不能大于99999999")
    private BigDecimal buyPrice;

    /**
     * 厂家建议售价
     */
    private BigDecimal sellPrice;

    /**
     * 商品采购数量
     */
    @NotNull(message = "商品采购数量不能为空")
    @Length(min = 1, max = 8, message = "进货价格不能大于99999999")
    private BigDecimal proNum;

    /**
     * 本次入库商品数量
     */
    private BigDecimal curArriveNum;

    /**
     * 计价方式(1:按重量计算2:按数量计算)
     */
    @NotNull(message = "计价方式不能为空")
    private Integer priceType;

    /**
     * 已收货费用
     */
    private BigDecimal receivedCharges;

    /**
     * 采购金额
     */
    @NotNull(message = "采购金额不能为空")
    private BigDecimal proAmount;

    /**
     * 采购单位
     */
    @NotNull(message = "采购单位不能为空")
    private String proUnit;

    /**
     * 规格值
     */
    @NotNull(message = "规格值不能为空")
    @NotEmpty(message = "规格值不能为空")
    private String specValue;

    /**
     * 规格名称
     */
    @NotNull(message = "规格名称不能为空")
    @NotEmpty(message = "规格名称不能为空")
    private String specName;

    /**
     * 规格code
     */
    @NotNull(message = "规格code不能为空")
    @NotEmpty(message = "规格code不能为空")
    @Length(min = 1, max = 20, message = "规格code长度不能大于20个字符")
    private String specCode;

    /**
     * 是否删除 1:未删  2:删除
     */
    private Integer del_flag;

    /**
     * 是否是冻品 1：是 2：否
     */
    @NotNull(message = "是否是冻品不能为空")
    private Integer frozenFlag;

    /**
     * 备注
     */
    private String remark;

    /**
     * 图片路径
     */
    @NotNull(message = "图片路径不能为空")
    @NotEmpty(message = "图片路径不能为空")
    private String picUrl;

    /**
     * 分类code
     */
    @NotNull(message = "分类code不能为空")
    @NotEmpty(message = "分类code不能为空")
    private String categoryCode;

    /**
     * 分类名称
     */
    @NotNull(message = "分类名称不能为空")
    @NotEmpty(message = "分类名称不能为空")
    private String categoryName;

    /**
     * 供货商名称
     */
    private String supplierName;

    /**
     * 当前登录用户code
     */
    private String userCode;

    /**
     * 文本搜索类型（1，商品名称；2，商品货号）
     */
    private Integer searchType;

    /**
     * 搜索字段
     */
    private String searchText;

    public String getPurchOrder() {
        return purchOrder;
    }

    public void setPurchOrder(String purchOrder) {
        this.purchOrder = purchOrder;
    }

    public String getProSpu() {
        return proSpu;
    }

    public void setProSpu(String proSpu) {
        this.proSpu = proSpu;
    }

    public String getProSku() {
        return proSku;
    }

    public void setProSku(String proSku) {
        this.proSku = proSku;
    }

    public String getProName() {
        return proName;
    }

    public void setProName(String proName) {
        this.proName = proName;
    }

    public String getProNo() {
        return proNo;
    }

    public void setProNo(String proNo) {
        this.proNo = proNo;
    }

    public BigDecimal getBuyPrice() {
        return buyPrice;
    }

    public void setBuyPrice(BigDecimal buyPrice) {
        this.buyPrice = buyPrice;
    }

    public BigDecimal getSellPrice() {
        return sellPrice;
    }

    public void setSellPrice(BigDecimal sellPrice) {
        this.sellPrice = sellPrice;
    }

    public BigDecimal getProNum() {
        return proNum;
    }

    public void setProNum(BigDecimal proNum) {
        this.proNum = proNum;
    }

    public Integer getPriceType() {
        return priceType;
    }

    public void setPriceType(Integer priceType) {
        this.priceType = priceType;
    }

    public BigDecimal getReceivedCharges() {
        return receivedCharges;
    }

    public void setReceivedCharges(BigDecimal receivedCharges) {
        this.receivedCharges = receivedCharges;
    }

    public BigDecimal getProAmount() {
        return proAmount;
    }

    public void setProAmount(BigDecimal proAmount) {
        this.proAmount = proAmount;
    }

    public String getProUnit() {
        return proUnit;
    }

    public void setProUnit(String proUnit) {
        this.proUnit = proUnit;
    }

    public String getSpecValue() {
        return specValue;
    }

    public void setSpecValue(String specValue) {
        this.specValue = specValue;
    }

    public String getSpecName() {
        return specName;
    }

    public void setSpecName(String specName) {
        this.specName = specName;
    }

    public Integer getDel_flag() {

        return del_flag;
    }

    public void setDel_flag(Integer del_flag) {

        this.del_flag = del_flag;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getPicUrl() {

        return picUrl;
    }

    public void setPicUrl(String picUrl) {

        this.picUrl = picUrl;
    }

    public String getCategoryCode() {

        return categoryCode;
    }

    public void setCategoryCode(String categoryCode) {

        this.categoryCode = categoryCode;
    }

    public String getCategoryName() {

        return categoryName;
    }

    public void setCategoryName(String categoryName) {

        this.categoryName = categoryName;
    }

    public Integer getFrozenFlag() {

        return frozenFlag;
    }

    public void setFrozenFlag(Integer frozenFlag) {

        this.frozenFlag = frozenFlag;
    }

    public BigDecimal getCurArriveNum() {

        return curArriveNum;
    }

    public void setCurArriveNum(BigDecimal curArriveNum) {

        this.curArriveNum = curArriveNum;
    }

    public String getSupplierName() {

        return supplierName;
    }

    public void setSupplierName(String supplierName) {

        this.supplierName = supplierName;
    }

    public String getUserCode() {

        return userCode;
    }

    public void setUserCode(String userCode) {

        this.userCode = userCode;
    }

    public String getSpecCode() {

        return specCode;
    }

    public void setSpecCode(String specCode) {

        this.specCode = specCode;
    }

    public Integer getSearchType() {

        return searchType;
    }

    public void setSearchType(Integer searchType) {

        this.searchType = searchType;
    }

    public String getSearchText() {

        return searchText;
    }

    public void setSearchText(String searchText) {

        this.searchText = searchText;
    }

}
  
